11111

COURSE INTRODUCTION AND APPLICATION INFORMATION


se.cs.ieu.edu.tr

Course Name
Code
Semester
Theory
(hour/week)
Application/Lab
(hour/week)
Local Credits
ECTS
Spring
Prerequisites
 CE 221To succeed (To get a grade of at least DD)
Course Language
Course Type
Required
Course Level
-
Mode of Delivery -
Teaching Methods and Techniques of the Course
Course Coordinator
Course Lecturer(s)
Assistant(s)
Course Objectives
Learning Outcomes The students who succeeded in this course;
  • be able to assess the relative advantages of using hashing or balanced tree implementations in efficiently solving search problems with concurrent insertion, and/or deletions on collections of data
  • be able to use leftist heaps when efficient merging of heaps is needed
  • be able to use the ultrafast disjoint set class for solving problems that rely on an efficient set implementation for their performance
  • be able to model complex problems in terms of graphs
  • be able to search for an efficient solution that is made possible by the applications of the graph algorithms
  • be able to have awareness of the lower bound associated with sorting and the conditions in which it holds
  • be able to describe the usage of various data structures
  • be able to explain the operations for maintaining common data structures
  • be able to design and apply appropriate data structures for solving computing problems
  • be able to design simple algorithms for solving computing problems
Course Description

 



Course Category

Core Courses
X
Major Area Courses
Supportive Courses
Media and Managment Skills Courses
Transferable Skill Courses

 

WEEKLY SUBJECTS AND RELATED PREPARATION STUDIES

Week Subjects Required Materials
1 Hashing Course Book (Ch. 5.1, 5.2, 5.3, 5.4.1)
2 Hashing Course Book (Ch. 5.4.2, 5.4.3, 5.5, 5.6, 5.7)
3 Leftist Heaps Course Book (Ch. 6.6)
4 Sorting (Indirect Sorting, Lower Bound for Sorting, Bucket Sort) Course Book (Ch. 7.8, 7.9, 7.10)
5 Disjoint Set Class Course Book (Ch. 8.1, 8.2, 8.3, 8.4, 8.5)
6 Disjoint Set Class Course Book (Ch. 8.6, 8.7)
7 Midterm
8 Graphs: Topological Sorting Course Book (Ch. 9.1, 9.2)
9 Graphs: Unweighted Shortest Paths, Dijkstra’s Algorithm Course Book (Ch. 9.3.1, 9.3.2)
10 Graphs: Shortest Paths for graphs with negative edges and acyclic graphs Course Book Ch. 9.3.3, 9.3.4, 9.3.5, 9.3.6)
11 Graphs: Maximum Flow Algorithm Course Book (Ch. 9.4)
12 Graphs: Minimum Spanning Tree Course Book (Ch. 9.5)
13 Graphs: Depth First Search, Connected Components, Biconnectivity Course Book (Ch. 9.6.1, 9.6.2)
14 Graphs: Euler Circuits Course Book (Ch. 9.6.3)
15 Graphs: Directed Graphs and Finding Strong Components Course Book (Ch. 9.6.4, 9.6.5)
16 Review of the Semester
Course Notes/Textbooks M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006
Suggested Readings/Materials

 

EVALUATION SYSTEM

Semester Activities Number Weigthing
Participation
Laboratory / Application
6
30
Field Work
Quizzes / Studio Critiques
Portfolio
Homework / Assignments
15
0
Presentation / Jury
Project
Seminar / Workshop
Oral Exam
Midterm
1
30
Final Exam
1
40
Total

Weighting of Semester Activities on the Final Grade
60
Weighting of End-of-Semester Activities on the Final Grade
40
Total

ECTS / WORKLOAD TABLE

Semester Activities Number Duration (Hours) Workload
Course Hours
(Including exam week: 16 x total hours)
16
3
48
Laboratory / Application Hours
(Including exam week: 16 x total hours)
16
2
Study Hours Out of Class
15
3
Field Work
Quizzes / Studio Critiques
Portfolio
Homework / Assignments
15
3
Presentation / Jury
Project
Seminar / Workshop
Oral Exam
Midterms
1
12
Final Exams
1
20
    Total
202

 

COURSE LEARNING OUTCOMES AND PROGRAM QUALIFICATIONS RELATIONSHIP

#
Program Competencies/Outcomes
* Contribution Level
1
2
3
4
5
1 Be able to define problems in real life by identifying functional and nonfunctional requirements that the software is to execute
2 Be able to design and analyze software at component, subsystem, and software architecture level X
3 Be able to develop software by coding, verifying, doing unit testing and debugging X
4 Be able to verify software by testing its behaviour, execution conditions, and expected results
5 Be able to maintain software due to working environment changes, new user demands and the emergence of software errors that occur during operation
6 Be able to monitor and control changes in the software, the integration of software with other software systems, and plan to release software versions systematically
7 To have knowledge in the area of software requirements understanding, process planning, output specification, resource planning, risk management and quality planning
8 Be able to identify, evaluate, measure and manage changes in software development by applying software engineering processes
9 Be able to use various tools and methods to do the software requirements, design, development, testing and maintenance X
10 To have knowledge of basic quality metrics, software life cycle processes, software quality, quality model characteristics, and be able to use them to develop, verify and test software X
11 To have knowledge in other disciplines that have common boundaries with software engineering such as computer engineering, management, mathematics, project management, quality management, software ergonomics and systems engineering X
12 Be able to grasp software engineering culture and concept of ethics, and have the basic information of applying them in the software engineering X
13

Be able to use a foreign language to follow related field publications and communicate with colleagues

X

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest

 

İzmir Ekonomi Üniversitesi | Sakarya Caddesi No:156, 35330 Balçova - İZMİR Tel: +90 232 279 25 25 | webmaster@ieu.edu.tr | YBS 2010